<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>SystemSharp: FixPointAnalysis.cs Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">SystemSharp
   &#160;<span id="projectnumber">0.3</span>
   </div>
   <div id="projectbrief">A system-level modeling framework for designing real-time embedded systems</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Packages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_fix_point_analysis_8cs_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Events</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">FixPointAnalysis.cs</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_fix_point_analysis_8cs.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">using</span> System;</div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">using</span> System.Collections.Generic;</div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">using</span> System.Diagnostics.Contracts;</div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">using</span> System.Diagnostics;</div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="keyword">using</span> System.Linq;</div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">using</span> System.Text;</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">using</span> System.Reactive;</div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">using</span> System.Reactive.Linq;</div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">using</span> System.Reactive.Subjects;</div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">using</span> System.Reflection;</div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">using</span> System.Reflection.Emit;</div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">using</span> SDILReader;</div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">using</span> SystemSharp.Collections;</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">using</span> SystemSharp.Common;</div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="namespace_system_sharp_1_1_analysis_1_1_msil.html">   35</a></span>&#160;<span class="keyword">namespace </span>SystemSharp.Analysis.Msil</div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;{</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    [ContractClass(typeof(AbstractStackStateContractClass&lt;&gt;))]</div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">   42</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class </span>AbstractStackState&lt;TElem&gt;</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    {</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#a1c5939fccff613750e991fbaf52ad402">   49</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">abstract</span> TElem <span class="keyword">this</span>[<span class="keywordtype">int</span> index] { <span class="keyword">get</span>; }</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#a9765674c91b7524463dd864b05188cb6">   54</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keywordtype">int</span> Depth { <span class="keyword">get</span>; }</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#afc238db0ab52441224a88270aeb2f47d">   59</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keywordtype">int</span> NumArguments { <span class="keyword">get</span>; }</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#a9a0d2d5b3af36e15e73f307d6c53e4cd">   64</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keywordtype">int</span> NumLocals { <span class="keyword">get</span>; }</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        <span class="keyword">public</span> <span class="keyword">abstract</span> TElem GetLocal(<span class="keywordtype">int</span> index);</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        <span class="keyword">public</span> <span class="keyword">abstract</span> TElem GetArgument(<span class="keywordtype">int</span> index);</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#a743de71a37bd87594d8330653e65bf38">   85</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#a743de71a37bd87594d8330653e65bf38">Push</a>(TElem objs)</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        {</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4.html">PushStackState&lt;TElem&gt;</a>(<span class="keyword">this</span>, objs);</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        }</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#ae8865ebc5b15e722804a557cae640d28">   94</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#ae8865ebc5b15e722804a557cae640d28">Pop</a>()</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        {</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_pop_stack_state_3_01_t_elem_01_4.html">PopStackState&lt;TElem&gt;</a>(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        }</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#aada1c296b0ceef063cec3de71be22faa">  105</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#aada1c296b0ceef063cec3de71be22faa">Assign</a>(<span class="keywordtype">int</span> localIndex, TElem rvalues)</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        {</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4.html">AsmtStackState&lt;TElem&gt;</a>(<span class="keyword">this</span>, localIndex, rvalues);</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        }</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#a32008d04ac1fb6b49323e8204057ee2e">  116</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#a32008d04ac1fb6b49323e8204057ee2e">AssignArg</a>(<span class="keywordtype">int</span> argIndex, TElem rvalues)</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        {</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4.html">ArgAsmtStackState&lt;TElem&gt;</a>(<span class="keyword">this</span>, argIndex, rvalues);</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        }</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    }</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    [ContractClassFor(typeof(AbstractStackState&lt;&gt;))]</div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_contract_class_3_01_t_elem_01_4.html">  127</a></span>&#160;    <span class="keyword">abstract</span> <span class="keyword">class </span>AbstractStackStateContractClass&lt;TElem&gt; : AbstractStackState&lt;TElem&gt;</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    {</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> TElem <span class="keyword">this</span>[<span class="keywordtype">int</span> index]</div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_contract_class_3_01_t_elem_01_4.html#af396baba96eb1da894f7283e3b3a6c8a">  130</a></span>&#160;        {</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;            <span class="keyword">get</span> </div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;            {</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                Contract.Requires(index &gt;= 0);</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                Contract.Requires(index &lt; Depth);</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                <span class="keywordflow">return</span> <span class="keywordflow">default</span>(TElem);</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;            }</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        }</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> Depth</div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_contract_class_3_01_t_elem_01_4.html#a4cec5d4a7a69369c299257283ae71de6">  140</a></span>&#160;        {</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;            <span class="keyword">get</span> { <span class="keywordflow">return</span> 0; }</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        }</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> NumArguments</div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_contract_class_3_01_t_elem_01_4.html#a33b09a560f32215249d0357090289d52">  145</a></span>&#160;        {</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;            <span class="keyword">get</span> { <span class="keywordflow">return</span> 0; }</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        }</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> NumLocals</div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_contract_class_3_01_t_elem_01_4.html#a5a1df8e100b808a5e7286969d03c1e98">  150</a></span>&#160;        {</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;            <span class="keyword">get</span> { <span class="keywordflow">return</span> 0; }</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        }</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_contract_class_3_01_t_elem_01_4.html#a6914a68747cb4b787601958b9520f8bd">  154</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> TElem <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_contract_class_3_01_t_elem_01_4.html#a6914a68747cb4b787601958b9520f8bd">GetLocal</a>(<span class="keywordtype">int</span> index)</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        {</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;            Contract.Requires(index &gt;= 0);</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;            Contract.Requires(index &lt; NumLocals);</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;            <span class="keywordflow">return</span> <span class="keywordflow">default</span>(TElem);</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        }</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div>
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_contract_class_3_01_t_elem_01_4.html#a5efe1ebd99f563b6d88599ece9c95131">  161</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> TElem <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_contract_class_3_01_t_elem_01_4.html#a5efe1ebd99f563b6d88599ece9c95131">GetArgument</a>(<span class="keywordtype">int</span> index)</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        {</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;            Contract.Requires(index &gt;= 0);</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;            Contract.Requires(index &lt; NumArguments);</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;            <span class="keywordflow">return</span> <span class="keywordflow">default</span>(TElem);</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        }</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    }</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html">  173</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class </span>DependentStackState&lt;TElem&gt; : AbstractStackState&lt;TElem&gt;</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    {</div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html#a33d609a32a394b86a6b78237032d546e">  178</a></span>&#160;        <span class="keyword">public</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> Pre { <span class="keyword">get</span>; <span class="keyword">private</span> set; }</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html#a9925cb38d1e1eb3f24dc762b6088664a">  184</a></span>&#160;        <span class="keyword">public</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html#a9925cb38d1e1eb3f24dc762b6088664a">DependentStackState</a>(<a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> pre)</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        {</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;            Pre = pre;</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        }</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> TElem <span class="keyword">this</span>[<span class="keywordtype">int</span> index]</div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html#aca73b35c22df434141cbd3d73f665c07">  190</a></span>&#160;        {</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;            <span class="keyword">get</span></div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;            {</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                <span class="keywordflow">return</span> Pre[index];</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;            }</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        }</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html#a8119499d998c476fda5e88bf596c9461">  197</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> TElem <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html#a8119499d998c476fda5e88bf596c9461">GetLocal</a>(<span class="keywordtype">int</span> index)</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        {</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;            <span class="keywordflow">return</span> Pre.GetLocal(index);</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        }</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div>
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html#a91fc472aee0417f4d039551e1201b959">  202</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> TElem <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html#a91fc472aee0417f4d039551e1201b959">GetArgument</a>(<span class="keywordtype">int</span> index)</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        {</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;            <span class="keywordflow">return</span> Pre.GetArgument(index);</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        }</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> Depth</div>
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html#a7c706775f965dc0ec0fc4c7dd1e687af">  208</a></span>&#160;        {</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;            <span class="keyword">get</span> { <span class="keywordflow">return</span> Pre.Depth; }</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        }</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> NumLocals</div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html#a203a153b1ffd6b4d17fb00d80a6c3194">  213</a></span>&#160;        {</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;            <span class="keyword">get</span> { <span class="keywordflow">return</span> Pre.NumLocals; }</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        }</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> NumArguments</div>
<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html#a3e9e4935d9efc5ad3e66c6a5a601cabc">  218</a></span>&#160;        {</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;            <span class="keyword">get</span> { <span class="keywordflow">return</span> Pre.NumArguments; }</div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        }</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    }</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div>
<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4.html">  227</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">class </span>PushStackState&lt;TElem&gt; : DependentStackState&lt;TElem&gt;</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    {</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        <span class="keyword">private</span> TElem _top;</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;</div>
<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4.html#aef91ef38ea67b2cb1a71c07388f150e2">  236</a></span>&#160;        <span class="keyword">public</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4.html#aef91ef38ea67b2cb1a71c07388f150e2">PushStackState</a>(<a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> pre, TElem top):</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;            base(pre)</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        {</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;            _top = top;</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        }</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> TElem <span class="keyword">this</span>[<span class="keywordtype">int</span> index]</div>
<div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4.html#a46f8a8b7412bd4a2de5f003c4631defd">  243</a></span>&#160;        {</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;            <span class="keyword">get</span></div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;            {</div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;                <span class="keywordflow">if</span> (index == 0)</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;                    <span class="keywordflow">return</span> _top;</div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;                    <span class="keywordflow">return</span> Pre[index - 1];</div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;            }</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        }</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> Depth</div>
<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4.html#a0752bfc7afdbdbd75c70759df3dd0774">  254</a></span>&#160;        {</div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;            <span class="keyword">get</span> { <span class="keywordflow">return</span> Pre.Depth + 1; }</div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        }</div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;</div>
<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4.html#a74a8535e3c3ca702e3e19873eb447abf">  258</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">string</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4.html#a74a8535e3c3ca702e3e19873eb447abf">ToString</a>()</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        {</div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;            <span class="keywordflow">return</span> Pre.ToString() + <span class="stringliteral">&quot;.push&quot;</span>;</div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        }</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div>
<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4.html#a902ab67155e908c2fa48325735248a8d">  263</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4.html#a902ab67155e908c2fa48325735248a8d">Pop</a>()</div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        {</div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;            <span class="keywordflow">return</span> Pre;</div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        }</div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    }</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;</div>
<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_pop_stack_state_3_01_t_elem_01_4.html">  273</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">class </span>PopStackState&lt;TElem&gt; : DependentStackState&lt;TElem&gt;</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    {</div>
<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_pop_stack_state_3_01_t_elem_01_4.html#aa35297fea5045f0d90b77926cbad77e7">  279</a></span>&#160;        <span class="keyword">public</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_pop_stack_state_3_01_t_elem_01_4.html#aa35297fea5045f0d90b77926cbad77e7">PopStackState</a>(<a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> pre):</div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;            base(pre)</div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        {</div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        }</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> TElem <span class="keyword">this</span>[<span class="keywordtype">int</span> index]</div>
<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_pop_stack_state_3_01_t_elem_01_4.html#a3cb5c0b26398ee71959cf7cfcbc0def4">  285</a></span>&#160;        {</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;            <span class="keyword">get</span> { <span class="keywordflow">return</span> Pre[index + 1]; }</div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        }</div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> Depth</div>
<div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_pop_stack_state_3_01_t_elem_01_4.html#a68e3eb56f72fcc2c1ee900197f90ebbc">  290</a></span>&#160;        {</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;            <span class="keyword">get</span> { <span class="keywordflow">return</span> Pre.Depth - 1; }</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;        }</div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;</div>
<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_pop_stack_state_3_01_t_elem_01_4.html#a662ecea738cd3ae2b10952a71dc8bf70">  294</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">string</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_pop_stack_state_3_01_t_elem_01_4.html#a662ecea738cd3ae2b10952a71dc8bf70">ToString</a>()</div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        {</div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;            <span class="keywordflow">return</span> Pre.ToString() + <span class="stringliteral">&quot;.pop&quot;</span>;</div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        }</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    }</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div>
<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4.html">  304</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">class </span>AsmtStackState&lt;TElem&gt; : DependentStackState&lt;TElem&gt;</div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    {</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        <span class="keyword">private</span> <span class="keywordtype">int</span> _localIndex;</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        <span class="keyword">private</span> TElem _rvalues;</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;</div>
<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4.html#af99840ef180e261156ad0a63d572e722">  315</a></span>&#160;        <span class="keyword">public</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4.html#af99840ef180e261156ad0a63d572e722">AsmtStackState</a>(<a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> pre, <span class="keywordtype">int</span> localIndex, TElem rvalues):</div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;            base(pre)</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        {</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;            _localIndex = localIndex;</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;            _rvalues = rvalues;</div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        }</div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div>
<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4.html#a096863125fb0453d688534ac0626a827">  322</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> TElem <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4.html#a096863125fb0453d688534ac0626a827">GetLocal</a>(<span class="keywordtype">int</span> index)</div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;        {</div>
<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;            <span class="keywordflow">if</span> (index == _localIndex)</div>
<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;                <span class="keywordflow">return</span> _rvalues;</div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;            <span class="keywordflow">else</span></div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;                <span class="keywordflow">return</span> Pre.GetLocal(index);</div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;        }</div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;</div>
<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4.html#af10e2a99a23e2149dfcd057a789b0a5a">  330</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">string</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4.html#af10e2a99a23e2149dfcd057a789b0a5a">ToString</a>()</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        {</div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;            <span class="keywordflow">return</span> Pre.ToString() + <span class="stringliteral">&quot;.{loc&quot;</span> + _localIndex + <span class="stringliteral">&quot;}&quot;</span>;</div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;        }</div>
<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    }</div>
<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;</div>
<div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4.html">  340</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">class </span>ArgAsmtStackState&lt;TElem&gt; : DependentStackState&lt;TElem&gt;</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    {</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        <span class="keyword">private</span> <span class="keywordtype">int</span> _argIndex;</div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        <span class="keyword">private</span> TElem _rvalues;</div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;</div>
<div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4.html#a0998486ed19ee9dcc8e2d009f4f738cd">  351</a></span>&#160;        <span class="keyword">public</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4.html#a0998486ed19ee9dcc8e2d009f4f738cd">ArgAsmtStackState</a>(<a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> pre, <span class="keywordtype">int</span> argIndex, TElem rvalues):</div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;            base(pre)</div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;        {</div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;            _argIndex = argIndex;</div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;            _rvalues = rvalues;</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        }</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;</div>
<div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4.html#abee4516251f31de46f3e660166a956f1">  358</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> TElem <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4.html#abee4516251f31de46f3e660166a956f1">GetArgument</a>(<span class="keywordtype">int</span> index)</div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        {</div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;            <span class="keywordflow">if</span> (index == _argIndex)</div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;                <span class="keywordflow">return</span> _rvalues;</div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;            <span class="keywordflow">else</span></div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;                <span class="keywordflow">return</span> Pre.GetArgument(index);</div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;        }</div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;</div>
<div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4.html#a376118482e2866be0ac7d167431a0bd2">  366</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">string</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4.html#a376118482e2866be0ac7d167431a0bd2">ToString</a>()</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        {</div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;            <span class="keywordflow">return</span> Pre.ToString() + <span class="stringliteral">&quot;.{arg&quot;</span> + _argIndex + <span class="stringliteral">&quot;}&quot;</span>;</div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        }</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    }</div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;</div>
<div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html">  377</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class </span>IndependentStackStateBase&lt;TElem&gt; : AbstractStackState&lt;TElem&gt;</div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    {</div>
<div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#a5d655249f7272e148885cb9d52518317">  382</a></span>&#160;        <span class="keyword">protected</span> List&lt;TElem&gt; <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#a5d655249f7272e148885cb9d52518317">_locals</a>;</div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;</div>
<div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#a3955b03262988b54849a2d24c50f3ab0">  387</a></span>&#160;        <span class="keyword">protected</span> List&lt;TElem&gt; <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#a3955b03262988b54849a2d24c50f3ab0">_args</a>;</div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;</div>
<div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#aafdc9e4a4618e95873663eb47e8e72df">  392</a></span>&#160;        <span class="keyword">protected</span> List&lt;TElem&gt; <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#aafdc9e4a4618e95873663eb47e8e72df">_stack</a>;</div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;</div>
<div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#ab5f1a122fb2c4d824724405810ad01f9">  397</a></span>&#160;        <span class="keyword">public</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#ab5f1a122fb2c4d824724405810ad01f9">IndependentStackStateBase</a>()</div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;        {</div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;        }</div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;</div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> TElem <span class="keyword">this</span>[<span class="keywordtype">int</span> index]</div>
<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#a7a9ae13d272df32159cbb9b0b8617d08">  407</a></span>&#160;        {</div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;            <span class="keyword">get</span> { <span class="keywordflow">return</span> _stack[index]; }</div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        }</div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;</div>
<div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#a3f4580979ae84f17cb91c6aa0c132077">  416</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> TElem <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#a3f4580979ae84f17cb91c6aa0c132077">GetLocal</a>(<span class="keywordtype">int</span> index)</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        {</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;            <span class="keywordflow">return</span> _locals[index];</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        }</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;</div>
<div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#ab33ae013b98cd4b19c7879139ea1878a">  426</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> TElem <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#ab33ae013b98cd4b19c7879139ea1878a">GetArgument</a>(<span class="keywordtype">int</span> index)</div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        {</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;            <span class="keywordflow">return</span> _args[index];</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;        }</div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;</div>
<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> Depth</div>
<div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#accd520030e1ad2c419696e3bc47ff6b5">  435</a></span>&#160;        {</div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;            <span class="keyword">get</span> { <span class="keywordflow">return</span> _stack.Count; }</div>
<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;        }</div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;</div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> NumLocals</div>
<div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#ae57e3aaf10ba12e0d7fd192910c02eb8">  443</a></span>&#160;        {</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;            <span class="keyword">get</span> { <span class="keywordflow">return</span> _locals.Count; }</div>
<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;        }</div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;</div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> NumArguments</div>
<div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#a560e0cef052fb0ba98a01c5d68089bbe">  451</a></span>&#160;        {</div>
<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;            <span class="keyword">get</span> { <span class="keywordflow">return</span> _args.Count; }</div>
<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;        }</div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;</div>
<div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#a488e7f3a679456247c8548c916053cb0">  455</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">string</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#a488e7f3a679456247c8548c916053cb0">ToString</a>()</div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        {</div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;            <span class="keywordflow">return</span> <span class="stringliteral">&quot;{&quot;</span> + _stack.Count + <span class="stringliteral">&quot;}&quot;</span>;</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        }</div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    }</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;</div>
<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    [ContractClass(typeof(FixPointAnalyzerContractClass&lt;&gt;))]</div>
<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html">  473</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class </span>FixPointAnalyzer&lt;TElem&gt;</div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    {</div>
<div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#a2edaff572909abbc5d59c96a0b75983b">  478</a></span>&#160;        <span class="keyword">public</span> MethodBase Method { <span class="keyword">get</span>; <span class="keyword">private</span> set; }</div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;</div>
<div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#a56f0c90c078ef7ffe3f67712e055ab19">  483</a></span>&#160;        <span class="keyword">public</span> <span class="keywordtype">bool</span> AnalysisDone { <span class="keyword">get</span>; <span class="keyword">private</span> set; }</div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;</div>
<div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#ad2de0c8e00b141c65cb54b8f3780a4c0">  488</a></span>&#160;        <span class="keyword">protected</span> Dictionary&lt;OpCode, Func&lt;ILInstruction, AbstractStackState&lt;TElem&gt;, <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a>&gt;&gt; _pmap =</div>
<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;            <span class="keyword">new</span> Dictionary&lt;OpCode, Func&lt;ILInstruction, AbstractStackState&lt;TElem&gt;, <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a>&gt;&gt;();</div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;</div>
<div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#ab6ace45a8938da07d73cac8b439a8ad5">  494</a></span>&#160;        <span class="keyword">protected</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a>[] <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#ab6ace45a8938da07d73cac8b439a8ad5">_stackStates</a>;</div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;</div>
<div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#a1386e4fd9d6d1841dd549dfe5c76dbc5">  500</a></span>&#160;        <span class="keyword">public</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#a1386e4fd9d6d1841dd549dfe5c76dbc5">FixPointAnalyzer</a>(MethodBase method)</div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;        {</div>
<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;            Contract.Requires&lt;ArgumentNullException&gt;(method != null);</div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;</div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;            Method = method;</div>
<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;        }</div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;</div>
<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#a8bf70e9506d161f07c3b4e7ba6f9d925">  513</a></span>&#160;        <span class="keyword">protected</span> <span class="keyword">virtual</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#a8bf70e9506d161f07c3b4e7ba6f9d925">Propagate</a>(<a class="code" href="class_s_d_i_l_reader_1_1_i_l_instruction.html">ILInstruction</a> ili, <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> pre)</div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;        {</div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;            <span class="keywordtype">int</span> preDepth = pre.Depth;</div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;            <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> post = _pmap[ili.Code](ili, pre);</div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;            <span class="keywordtype">int</span> postDepth = post.Depth;</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;            <span class="keywordtype">int</span> npush, npop;</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;            StackInfluenceAnalysis.GetStackBilance(ili, Method, out npop, out npush);</div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;            Debug.Assert(postDepth - preDepth == npush - npop);</div>
<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;            <span class="keywordflow">return</span> post;</div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;        }</div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;</div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;        <span class="keyword">protected</span> <span class="keyword">abstract</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> CreateInitialStackState();</div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;</div>
<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        <span class="keyword">protected</span> <span class="keyword">abstract</span> <span class="keywordtype">bool</span> Merge(</div>
<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;            <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> a, </div>
<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;            <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> b, </div>
<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;            out <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> m);</div>
<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;</div>
<div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#a38f51e7d537865f7c7923bddbaa59355">  546</a></span>&#160;        <span class="keyword">protected</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_method_code.html">MethodCode</a> CFG { <span class="keyword">get</span>; <span class="keyword">private</span> set; }</div>
<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;</div>
<div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#ae362bb3c8ea2ddb3c65e19007caf4cd9">  551</a></span>&#160;        <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#ae362bb3c8ea2ddb3c65e19007caf4cd9">Run</a>()</div>
<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;        {</div>
<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;            Contract.Requires(!AnalysisDone);</div>
<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;            Contract.Ensures(AnalysisDone);</div>
<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;</div>
<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;            <a class="code" href="class_system_sharp_1_1_analysis_1_1_method_facts.html">MethodFacts</a> myFacts = FactUniverse.Instance.GetFacts(Method);</div>
<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;            CFG = myFacts.CFG;</div>
<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;</div>
<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;            _stackStates = <span class="keyword">new</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a>[CFG.Instructions.Count];</div>
<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;            <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> initial = CreateInitialStackState();</div>
<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;            Queue&lt;Tuple&lt;AbstractStackState&lt;TElem&gt;, <a class="code" href="class_s_d_i_l_reader_1_1_i_l_instruction.html">ILInstruction</a>&gt;&gt; q = <span class="keyword">new</span> Queue&lt;Tuple&lt;AbstractStackState&lt;TElem&gt;, <a class="code" href="class_s_d_i_l_reader_1_1_i_l_instruction.html">ILInstruction</a>&gt;&gt;();</div>
<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;            q.Enqueue(Tuple.Create(initial, CFG.Instructions[0]));</div>
<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;            <span class="keywordtype">int</span> marshal = CFG.Instructions.Count - 1;</div>
<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;            <span class="keywordflow">while</span> (q.Count &gt; 0)</div>
<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;            {</div>
<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;                Tuple&lt;AbstractStackState&lt;TElem&gt;, <a class="code" href="class_s_d_i_l_reader_1_1_i_l_instruction.html">ILInstruction</a>&gt; cur = q.Dequeue();</div>
<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;                <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> preState = cur.Item1;</div>
<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;                <a class="code" href="class_s_d_i_l_reader_1_1_i_l_instruction.html">ILInstruction</a> ili = cur.Item2;</div>
<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;                <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> nextState = Propagate(ili, preState);</div>
<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;                <a class="code" href="class_s_d_i_l_reader_1_1_i_l_instruction.html">ILInstruction</a>[] succs = CFG.GetSuccessorsOf(ili);</div>
<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;                <span class="keywordflow">if</span> (_stackStates[ili.<a class="code" href="class_s_d_i_l_reader_1_1_i_l_instruction.html#aa454e633d8cfb3b7f306c70c8361c48b">Index</a>] == null)</div>
<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;                    _stackStates[ili.Index] = nextState;</div>
<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;                {</div>
<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;                    <span class="keywordtype">bool</span> changed = Merge(_stackStates[ili.<a class="code" href="class_s_d_i_l_reader_1_1_i_l_instruction.html#aa454e633d8cfb3b7f306c70c8361c48b">Index</a>], nextState, out _stackStates[ili.<a class="code" href="class_s_d_i_l_reader_1_1_i_l_instruction.html#aa454e633d8cfb3b7f306c70c8361c48b">Index</a>]);</div>
<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;                    <span class="keywordflow">if</span> (!changed)</div>
<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;                        <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;                }                </div>
<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;                <span class="keywordflow">foreach</span> (<a class="code" href="class_s_d_i_l_reader_1_1_i_l_instruction.html">ILInstruction</a> nextILI <span class="keywordflow">in</span> succs)</div>
<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;                {</div>
<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;                    <span class="keywordflow">if</span> (nextILI.<a class="code" href="class_s_d_i_l_reader_1_1_i_l_instruction.html#aa454e633d8cfb3b7f306c70c8361c48b">Index</a> &lt; marshal) <span class="comment">// skip pseudo ret at the end</span></div>
<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;                        q.Enqueue(Tuple.Create(_stackStates[ili.Index], nextILI));</div>
<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;                }</div>
<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;            }</div>
<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;</div>
<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;            AnalysisDone = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;        }</div>
<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;    }</div>
<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;</div>
<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    [ContractClassFor(typeof(FixPointAnalyzer&lt;&gt;))]</div>
<div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_contract_class_3_01_t_elem_01_4.html">  595</a></span>&#160;    <span class="keyword">abstract</span> <span class="keyword">class </span>FixPointAnalyzerContractClass&lt;TElem&gt; : FixPointAnalyzer&lt;TElem&gt;</div>
<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;    {</div>
<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;        FixPointAnalyzerContractClass(MethodBase method) :</div>
<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;            base(method)</div>
<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;        {</div>
<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;        }</div>
<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;</div>
<div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_contract_class_3_01_t_elem_01_4.html#ab00a644952496a453858ae8041e58e9a">  602</a></span>&#160;        <span class="keyword">protected</span> <span class="keyword">override</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_contract_class_3_01_t_elem_01_4.html#ab00a644952496a453858ae8041e58e9a">CreateInitialStackState</a>()</div>
<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;        {</div>
<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;            Contract.Ensures(Contract.Result&lt;<a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a>&gt;() != null);</div>
<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;            <span class="keywordflow">return</span> null;</div>
<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;        }</div>
<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;</div>
<div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_contract_class_3_01_t_elem_01_4.html#a1d03ae678b60bb0ab1a21647eb6b7692">  608</a></span>&#160;        <span class="keyword">protected</span> <span class="keyword">override</span> <span class="keywordtype">bool</span> <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_contract_class_3_01_t_elem_01_4.html#a1d03ae678b60bb0ab1a21647eb6b7692">Merge</a>(<a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> a, <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> b, out <a class="code" href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">AbstractStackState&lt;TElem&gt;</a> m)</div>
<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;        {</div>
<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;            Contract.Requires(a != null);</div>
<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;            Contract.Requires(b != null);</div>
<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;            Contract.Requires(a.Depth == b.Depth);</div>
<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;            Contract.Requires(a.NumLocals == b.NumLocals);</div>
<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;            Contract.Requires(a.NumArguments == b.NumArguments);</div>
<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;            Contract.Ensures(Contract.ValueAtReturn(out m) != null);</div>
<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;</div>
<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;            m = null; <span class="comment">//so that Code Contracts can be deactivated completely, otherwise the Compiler complains that m is unassigned on return</span></div>
<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;</div>
<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;        }</div>
<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;    }</div>
<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;}</div>
<div class="ttc" id="class_s_d_i_l_reader_1_1_i_l_instruction_html"><div class="ttname"><a href="class_s_d_i_l_reader_1_1_i_l_instruction.html">SDILReader.ILInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_l_instruction_8cs_source.html#l00029">ILInstruction.cs:29</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4_html_a32008d04ac1fb6b49323e8204057ee2e"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#a32008d04ac1fb6b49323e8204057ee2e">SystemSharp.Analysis.Msil.AbstractStackState&lt; TElem &gt;.AssignArg</a></div><div class="ttdeci">virtual AbstractStackState&lt; TElem &gt; AssignArg(int argIndex, TElem rvalues)</div><div class="ttdoc">Constructs the stack state which results from assigning a new value to a method parameter ...</div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00116">FixPointAnalysis.cs:116</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4_html_a743de71a37bd87594d8330653e65bf38"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#a743de71a37bd87594d8330653e65bf38">SystemSharp.Analysis.Msil.AbstractStackState&lt; TElem &gt;.Push</a></div><div class="ttdeci">virtual AbstractStackState&lt; TElem &gt; Push(TElem objs)</div><div class="ttdoc">Constructs the stack state which results from pushing an element to the program stack. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00085">FixPointAnalysis.cs:85</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4_html_a8119499d998c476fda5e88bf596c9461"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html#a8119499d998c476fda5e88bf596c9461">SystemSharp.Analysis.Msil.DependentStackState&lt; TElem &gt;.GetLocal</a></div><div class="ttdeci">override TElem GetLocal(int index)</div><div class="ttdoc">Returns the state of a local variable </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00197">FixPointAnalysis.cs:197</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4_html_a5d655249f7272e148885cb9d52518317"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#a5d655249f7272e148885cb9d52518317">SystemSharp.Analysis.Msil.IndependentStackStateBase&lt; TElem &gt;._locals</a></div><div class="ttdeci">List&lt; TElem &gt; _locals</div><div class="ttdoc">List of local variables - must be assigned inside overriding class! </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00382">FixPointAnalysis.cs:382</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_contract_class_3_01_t_elem_01_4_html_ab00a644952496a453858ae8041e58e9a"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_contract_class_3_01_t_elem_01_4.html#ab00a644952496a453858ae8041e58e9a">SystemSharp.Analysis.Msil.FixPointAnalyzerContractClass&lt; TElem &gt;.CreateInitialStackState</a></div><div class="ttdeci">override AbstractStackState&lt; TElem &gt; CreateInitialStackState()</div><div class="ttdoc">Creates an initial stack state. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00602">FixPointAnalysis.cs:602</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4_html_a902ab67155e908c2fa48325735248a8d"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4.html#a902ab67155e908c2fa48325735248a8d">SystemSharp.Analysis.Msil.PushStackState&lt; TElem &gt;.Pop</a></div><div class="ttdeci">override AbstractStackState&lt; TElem &gt; Pop()</div><div class="ttdoc">Constructs the stack state which results from removing the top-most element from the program stack...</div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00263">FixPointAnalysis.cs:263</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_pop_stack_state_3_01_t_elem_01_4_html"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_pop_stack_state_3_01_t_elem_01_4.html">SystemSharp.Analysis.Msil.PopStackState&lt; TElem &gt;</a></div><div class="ttdoc">Represents a stack state which results from removing the top-most value from the program stack of a p...</div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00273">FixPointAnalysis.cs:273</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4_html_a376118482e2866be0ac7d167431a0bd2"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4.html#a376118482e2866be0ac7d167431a0bd2">SystemSharp.Analysis.Msil.ArgAsmtStackState&lt; TElem &gt;.ToString</a></div><div class="ttdeci">override string ToString()</div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00366">FixPointAnalysis.cs:366</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4_html_aef91ef38ea67b2cb1a71c07388f150e2"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4.html#aef91ef38ea67b2cb1a71c07388f150e2">SystemSharp.Analysis.Msil.PushStackState&lt; TElem &gt;.PushStackState</a></div><div class="ttdeci">PushStackState(AbstractStackState&lt; TElem &gt; pre, TElem top)</div><div class="ttdoc">Constructs an instance based on a predecessor state and an element state. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00236">FixPointAnalysis.cs:236</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4_html_a91fc472aee0417f4d039551e1201b959"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html#a91fc472aee0417f4d039551e1201b959">SystemSharp.Analysis.Msil.DependentStackState&lt; TElem &gt;.GetArgument</a></div><div class="ttdeci">override TElem GetArgument(int index)</div><div class="ttdoc">Returns the state of a method parameter. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00202">FixPointAnalysis.cs:202</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4_html_a8bf70e9506d161f07c3b4e7ba6f9d925"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#a8bf70e9506d161f07c3b4e7ba6f9d925">SystemSharp.Analysis.Msil.FixPointAnalyzer&lt; TElem &gt;.Propagate</a></div><div class="ttdeci">virtual AbstractStackState&lt; TElem &gt; Propagate(ILInstruction ili, AbstractStackState&lt; TElem &gt; pre)</div><div class="ttdoc">Propagates a stack state by computing the effects of executing a specific instruction. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00513">FixPointAnalysis.cs:513</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4_html_ae8865ebc5b15e722804a557cae640d28"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#ae8865ebc5b15e722804a557cae640d28">SystemSharp.Analysis.Msil.AbstractStackState&lt; TElem &gt;.Pop</a></div><div class="ttdeci">virtual AbstractStackState&lt; TElem &gt; Pop()</div><div class="ttdoc">Constructs the stack state which results from removing the top-most element from the program stack...</div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00094">FixPointAnalysis.cs:94</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_contract_class_3_01_t_elem_01_4_html_a6914a68747cb4b787601958b9520f8bd"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_contract_class_3_01_t_elem_01_4.html#a6914a68747cb4b787601958b9520f8bd">SystemSharp.Analysis.Msil.AbstractStackStateContractClass&lt; TElem &gt;.GetLocal</a></div><div class="ttdeci">override TElem GetLocal(int index)</div><div class="ttdoc">Returns the state of a local variable </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00154">FixPointAnalysis.cs:154</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4_html_a0998486ed19ee9dcc8e2d009f4f738cd"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4.html#a0998486ed19ee9dcc8e2d009f4f738cd">SystemSharp.Analysis.Msil.ArgAsmtStackState&lt; TElem &gt;.ArgAsmtStackState</a></div><div class="ttdeci">ArgAsmtStackState(AbstractStackState&lt; TElem &gt; pre, int argIndex, TElem rvalues)</div><div class="ttdoc">Constructs an instance based on predecessor state, index of method parameter and state of assigned va...</div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00351">FixPointAnalysis.cs:351</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_contract_class_3_01_t_elem_01_4_html_a5efe1ebd99f563b6d88599ece9c95131"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_contract_class_3_01_t_elem_01_4.html#a5efe1ebd99f563b6d88599ece9c95131">SystemSharp.Analysis.Msil.AbstractStackStateContractClass&lt; TElem &gt;.GetArgument</a></div><div class="ttdeci">override TElem GetArgument(int index)</div><div class="ttdoc">Returns the state of a method parameter. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00161">FixPointAnalysis.cs:161</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4_html_a1386e4fd9d6d1841dd549dfe5c76dbc5"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#a1386e4fd9d6d1841dd549dfe5c76dbc5">SystemSharp.Analysis.Msil.FixPointAnalyzer&lt; TElem &gt;.FixPointAnalyzer</a></div><div class="ttdeci">FixPointAnalyzer(MethodBase method)</div><div class="ttdoc">Constructs an instance based on a specific method. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00500">FixPointAnalysis.cs:500</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_method_code_html"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_method_code.html">SystemSharp.Analysis.MethodCode</a></div><div class="ttdoc">A control-flow graph specialization for CLI methods </div><div class="ttdef"><b>Definition:</b> <a href="_m_s_i_l_analysis_8cs_source.html#l00487">MSILAnalysis.cs:487</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4_html_a9925cb38d1e1eb3f24dc762b6088664a"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_dependent_stack_state_3_01_t_elem_01_4.html#a9925cb38d1e1eb3f24dc762b6088664a">SystemSharp.Analysis.Msil.DependentStackState&lt; TElem &gt;.DependentStackState</a></div><div class="ttdeci">DependentStackState(AbstractStackState&lt; TElem &gt; pre)</div><div class="ttdoc">Constructs an instance based on predecessor state pre. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00184">FixPointAnalysis.cs:184</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4_html_aada1c296b0ceef063cec3de71be22faa"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html#aada1c296b0ceef063cec3de71be22faa">SystemSharp.Analysis.Msil.AbstractStackState&lt; TElem &gt;.Assign</a></div><div class="ttdeci">virtual AbstractStackState&lt; TElem &gt; Assign(int localIndex, TElem rvalues)</div><div class="ttdoc">Constructs the stack state which results from assigning a new value to a local variable. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00105">FixPointAnalysis.cs:105</a></div></div>
<div class="ttc" id="class_s_d_i_l_reader_1_1_i_l_instruction_html_aa454e633d8cfb3b7f306c70c8361c48b"><div class="ttname"><a href="class_s_d_i_l_reader_1_1_i_l_instruction.html#aa454e633d8cfb3b7f306c70c8361c48b">SDILReader.ILInstruction.Index</a></div><div class="ttdeci">int Index</div><div class="ttdef"><b>Definition:</b> <a href="_i_l_instruction_8cs_source.html#l00063">ILInstruction.cs:63</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_method_facts_html"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_method_facts.html">SystemSharp.Analysis.MethodFacts</a></div><div class="ttdoc">This class provides analysis information on methods and constructors. </div><div class="ttdef"><b>Definition:</b> <a href="_method_facts_8cs_source.html#l00041">MethodFacts.cs:41</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4_html"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_abstract_stack_state_3_01_t_elem_01_4.html">SystemSharp.Analysis.Msil.AbstractStackState&lt; TElem &gt;</a></div><div class="ttdoc">Represents the state of the program stack at a specific program location. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00042">FixPointAnalysis.cs:42</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4_html_a096863125fb0453d688534ac0626a827"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4.html#a096863125fb0453d688534ac0626a827">SystemSharp.Analysis.Msil.AsmtStackState&lt; TElem &gt;.GetLocal</a></div><div class="ttdeci">override TElem GetLocal(int index)</div><div class="ttdoc">Returns the state of a local variable </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00322">FixPointAnalysis.cs:322</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4_html_af10e2a99a23e2149dfcd057a789b0a5a"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4.html#af10e2a99a23e2149dfcd057a789b0a5a">SystemSharp.Analysis.Msil.AsmtStackState&lt; TElem &gt;.ToString</a></div><div class="ttdeci">override string ToString()</div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00330">FixPointAnalysis.cs:330</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4_html_a3f4580979ae84f17cb91c6aa0c132077"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#a3f4580979ae84f17cb91c6aa0c132077">SystemSharp.Analysis.Msil.IndependentStackStateBase&lt; TElem &gt;.GetLocal</a></div><div class="ttdeci">override TElem GetLocal(int index)</div><div class="ttdoc">Returns the local variable state for a local variable with a given index </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00416">FixPointAnalysis.cs:416</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_contract_class_3_01_t_elem_01_4_html_a1d03ae678b60bb0ab1a21647eb6b7692"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_contract_class_3_01_t_elem_01_4.html#a1d03ae678b60bb0ab1a21647eb6b7692">SystemSharp.Analysis.Msil.FixPointAnalyzerContractClass&lt; TElem &gt;.Merge</a></div><div class="ttdeci">override bool Merge(AbstractStackState&lt; TElem &gt; a, AbstractStackState&lt; TElem &gt; b, out AbstractStackState&lt; TElem &gt; m)</div><div class="ttdoc">Merges two stack states. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00608">FixPointAnalysis.cs:608</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4_html_a488e7f3a679456247c8548c916053cb0"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#a488e7f3a679456247c8548c916053cb0">SystemSharp.Analysis.Msil.IndependentStackStateBase&lt; TElem &gt;.ToString</a></div><div class="ttdeci">override string ToString()</div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00455">FixPointAnalysis.cs:455</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4_html"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4.html">SystemSharp.Analysis.Msil.PushStackState&lt; TElem &gt;</a></div><div class="ttdoc">Represents a stack state which results from pushing a value onto the program stack of a predecessor s...</div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00227">FixPointAnalysis.cs:227</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4_html"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4.html">SystemSharp.Analysis.Msil.AsmtStackState&lt; TElem &gt;</a></div><div class="ttdoc">Represents a stack state which results from assigning a value to a local variable of a predecessor st...</div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00304">FixPointAnalysis.cs:304</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4_html_ab33ae013b98cd4b19c7879139ea1878a"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#ab33ae013b98cd4b19c7879139ea1878a">SystemSharp.Analysis.Msil.IndependentStackStateBase&lt; TElem &gt;.GetArgument</a></div><div class="ttdeci">override TElem GetArgument(int index)</div><div class="ttdoc">Returns the state of the method argument with a given index </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00426">FixPointAnalysis.cs:426</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_pop_stack_state_3_01_t_elem_01_4_html_aa35297fea5045f0d90b77926cbad77e7"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_pop_stack_state_3_01_t_elem_01_4.html#aa35297fea5045f0d90b77926cbad77e7">SystemSharp.Analysis.Msil.PopStackState&lt; TElem &gt;.PopStackState</a></div><div class="ttdeci">PopStackState(AbstractStackState&lt; TElem &gt; pre)</div><div class="ttdoc">Constructs an instance based on a predecessor state. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00279">FixPointAnalysis.cs:279</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4_html_aafdc9e4a4618e95873663eb47e8e72df"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#aafdc9e4a4618e95873663eb47e8e72df">SystemSharp.Analysis.Msil.IndependentStackStateBase&lt; TElem &gt;._stack</a></div><div class="ttdeci">List&lt; TElem &gt; _stack</div><div class="ttdoc">List of stack elements - must be assigned inside overriding class! </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00392">FixPointAnalysis.cs:392</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4_html_a74a8535e3c3ca702e3e19873eb447abf"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_push_stack_state_3_01_t_elem_01_4.html#a74a8535e3c3ca702e3e19873eb447abf">SystemSharp.Analysis.Msil.PushStackState&lt; TElem &gt;.ToString</a></div><div class="ttdeci">override string ToString()</div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00258">FixPointAnalysis.cs:258</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4_html_a3955b03262988b54849a2d24c50f3ab0"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#a3955b03262988b54849a2d24c50f3ab0">SystemSharp.Analysis.Msil.IndependentStackStateBase&lt; TElem &gt;._args</a></div><div class="ttdeci">List&lt; TElem &gt; _args</div><div class="ttdoc">List of method parameters - must be assigned inside overriding class! </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00387">FixPointAnalysis.cs:387</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4_html"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4.html">SystemSharp.Analysis.Msil.ArgAsmtStackState&lt; TElem &gt;</a></div><div class="ttdoc">Represents a stack state which results from assigning a value to a method parameter of a predecessor ...</div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00340">FixPointAnalysis.cs:340</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4_html_ae362bb3c8ea2ddb3c65e19007caf4cd9"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#ae362bb3c8ea2ddb3c65e19007caf4cd9">SystemSharp.Analysis.Msil.FixPointAnalyzer&lt; TElem &gt;.Run</a></div><div class="ttdeci">virtual void Run()</div><div class="ttdoc">Executes the analysis. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00551">FixPointAnalysis.cs:551</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4_html_abee4516251f31de46f3e660166a956f1"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_arg_asmt_stack_state_3_01_t_elem_01_4.html#abee4516251f31de46f3e660166a956f1">SystemSharp.Analysis.Msil.ArgAsmtStackState&lt; TElem &gt;.GetArgument</a></div><div class="ttdeci">override TElem GetArgument(int index)</div><div class="ttdoc">Returns the state of a method parameter. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00358">FixPointAnalysis.cs:358</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_pop_stack_state_3_01_t_elem_01_4_html_a662ecea738cd3ae2b10952a71dc8bf70"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_pop_stack_state_3_01_t_elem_01_4.html#a662ecea738cd3ae2b10952a71dc8bf70">SystemSharp.Analysis.Msil.PopStackState&lt; TElem &gt;.ToString</a></div><div class="ttdeci">override string ToString()</div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00294">FixPointAnalysis.cs:294</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4_html_ab6ace45a8938da07d73cac8b439a8ad5"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_fix_point_analyzer_3_01_t_elem_01_4.html#ab6ace45a8938da07d73cac8b439a8ad5">SystemSharp.Analysis.Msil.FixPointAnalyzer&lt; TElem &gt;._stackStates</a></div><div class="ttdeci">AbstractStackState&lt; TElem &gt;[] _stackStates</div><div class="ttdoc">Assigns a stack state to each instruction index. </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00494">FixPointAnalysis.cs:494</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4_html_af99840ef180e261156ad0a63d572e722"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_asmt_stack_state_3_01_t_elem_01_4.html#af99840ef180e261156ad0a63d572e722">SystemSharp.Analysis.Msil.AsmtStackState&lt; TElem &gt;.AsmtStackState</a></div><div class="ttdeci">AsmtStackState(AbstractStackState&lt; TElem &gt; pre, int localIndex, TElem rvalues)</div><div class="ttdoc">Constructs an instance based on predecessor state, index of assigned local variable and state of assi...</div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00315">FixPointAnalysis.cs:315</a></div></div>
<div class="ttc" id="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4_html_ab5f1a122fb2c4d824724405810ad01f9"><div class="ttname"><a href="class_system_sharp_1_1_analysis_1_1_msil_1_1_independent_stack_state_base_3_01_t_elem_01_4.html#ab5f1a122fb2c4d824724405810ad01f9">SystemSharp.Analysis.Msil.IndependentStackStateBase&lt; TElem &gt;.IndependentStackStateBase</a></div><div class="ttdeci">IndependentStackStateBase()</div><div class="ttdoc">Constructs a new instance </div><div class="ttdef"><b>Definition:</b> <a href="_fix_point_analysis_8cs_source.html#l00397">FixPointAnalysis.cs:397</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_bb5e995590685548b7e11478911ee7c3.html">SystemSharp-Google-SVN</a></li><li class="navelem"><a class="el" href="dir_8deefa4467a62b572b52d238d562b104.html">SystemSharp</a></li><li class="navelem"><a class="el" href="dir_0e5a72156f8560bbc472a395da2569d6.html">SystemSharp</a></li><li class="navelem"><a class="el" href="dir_9d3c30b4336bd92c64ccf0aeee487ace.html">SystemSharp</a></li><li class="navelem"><a class="el" href="dir_d5bda8a155622a5a3d520660116af4c1.html">Analysis</a></li><li class="navelem"><a class="el" href="dir_a0f92cf4b7d6a1985f21fc4bd756c128.html">Msil</a></li><li class="navelem"><a class="el" href="_fix_point_analysis_8cs.html">FixPointAnalysis.cs</a></li>
    <li class="footer">Generated on Thu Dec 26 2013 14:21:39 for SystemSharp by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
  </ul>
</div>
</body>
</html>
